The subject matter discussed in the background section should not be assumed to be prior art merely as a result of its mention in the background section. Similarly, a problem mentioned in the background section or associated with the subject matter of the background section should not be assumed to have been previously recognized in the prior art. The subject matter in the background section merely represents different approaches, which in and of themselves may also be inventions.
The following detailed description is made with reference to the technology disclosed. Preferred implementations are described to illustrate the technology disclosed, not to limit its scope, which is defined by the claims. Those of ordinary skill in the art will recognize a variety of equivalent variations on the description.
This invention relates to the field of data management, and in particular to a system and method that facilitates generation and management of a hierarchical data structure.
In order to manage large amounts of data, companies, organizations, entities and the like need to implement correspondingly large data infrastructures. Without the large data infrastructures, storing and querying massive amounts of data can be time consuming and expensive.
The large data infrastructures often store data logically in hierarchical data structures allowing mining or querying of the data in an efficient manner. For example, data associated with employees of a corporation may be organized first by department and then by roles of the employee within the department then by projects the employees are currently working on.
In hierarchical data structures, data is stored as a record and represented as nodes in the hierarchical data structure. Relationship links are provided to show the relationship between the different nodes, such as a parent-child relationship. Each node has one parent node or a predecessor node unless the node is a starting or initial root node. Each node, including the root node, can also have multiple child nodes.
Conventionally, in order to retrieve or query data in a hierarchical data structure, the whole data structure needs to be traversed starting from a root node. When the size and complexity of relationships between the nodes increase, traversing the relationships between the root node and the node containing the desired data result results in lengthy delays and/or excessive processing power of the computing resources.
Similarly, inserting or deleting nodes in a hierarchical data structure can also result in lengthy delays and/or excessive increases in processing power of the computer resources. In particular, updating nodes that depend on the inserted or deleted nodes may require traversing through all the nodes having a relationship with the inserted or deleted node and updating each of those nodes. For example, scheduling software might be used to manage project deadlines. When a single job or operation within the hierarchy is modified, delayed, or canceled, the estimated start and completion dates of all subsequent operations might need to be re-computed serially before the final completion date of the project can be made available. Since hierarchical data structures may include thousands of nodes, this approach can be both time-consuming and a less-than-optimal use of computing resources.
To prevent such disadvantages, the hierarchical data structure may have limits on the configuration of the nodes within the hierarchical data structure. For example, the nodes within hierarchical data structure may be represented in a tree form. The hierarchical tree structure provides a visual display of the relationships between the nodes, as depicted in FIG. 2. Limits may be placed on the height and the width of the tree. Based on performance tests executed on the hierarchical tree structure, an administrator may determine that operations, such as queries, performed on the data in the hierarchical tree structure perform seamlessly and optimally when a tree has a height of 20 nodes and a width of 20 nodes.
However, the rigid constraints of the height limitation and the width limitation of the hierarchical tree may not fit the needs of an organization. For example, an organization may determine need the height of the tree limit to be 20 nodes, but may need the width of the tree limit to be greater than 20 nodes.
What is needed is a system and method that provides flexible structural limits on the number of nodes in a hierarchical data structure.